package demo1;

import java.util.LinkedList;
import java.util.Queue;

public class Stack {
    Queue<Integer> q1;
    Queue<Integer> q2;
    public Stack() {
        q1 = new LinkedList<>();
        q2 = new LinkedList<>();

    }

    public void push(int x) {
        //放到不为空的队列，如果都是空的放到第一个
        if(!q1.isEmpty()){
            q1.offer(x);
        } else if (!q2.isEmpty()) {
            q2.offer(x);
        }else {
            //如果都是空的放到第一个
            q1.offer(x);
        }

    }

    public int pop() {
        if(empty()){
            return -1;
        }
        if(!q1.isEmpty()){
            int cur = q1.size();
            for(int i = 0;i < cur-1;i++){
               int x = q1.poll();
               q2.offer(x);
            }
            return q1.poll();
        }
        if(!q2.isEmpty()){
            int cur = q2.size();
            for(int i = 0;i < cur-1;i++){
                int x = q2.poll();
                q1.offer(x);
            }
            return q2.poll();
        }
        return -1;
    }

    public int top() {
        if(empty()){
            return -1;
        }
        if(!q1.isEmpty()){
            int cur = q1.size();
            int x = -1;
            for(int i = 0;i < cur;i++){
                 x = q1.poll();
                q2.offer(x);
            }
            return x;
        }
        if(!q2.isEmpty()){
            int cur = q2.size();
            int x = -1;
            for(int i = 0;i < cur;i++){
                 x = q2.poll();
                q1.offer(x);
            }
            return x;
        }
        return -1;

    }

    public boolean empty() {
        return q1.isEmpty() && q2.isEmpty();

    }
}
